# coding=utf-8
# 代码文件：chapter8/ch8.1.5.py
from docx.shared import Cm

SLD_LAYOUT_TITLE_ONLY = 5  # 只有标题的版式

from pptx import Presentation

f = r'data/temp.pptx'
# 打开PPT文档
ppt = Presentation(f)

# 选择母版中的第六个幻灯片版式，只有标题的版式
title_slide_layout = ppt.slide_layouts[SLD_LAYOUT_TITLE_ONLY]

print('添加一页幻灯片。')
#  添加一页幻灯片
slide = ppt.slides.add_slide(title_slide_layout)

title = slide.shapes.title         # 获得幻灯片的标题

title.text = '北京各城区最高房价'    # 设置标题文本
#  在幻灯片中添加表格
shape = slide.shapes.add_table(rows=6,
                               cols=2,
                               left=Cm(3.89),
                               top=Cm(5.21),
                               width=Cm(17.63),
                               height=Cm(10.66))
table = shape.table  # 返回创建的表格对象

records = [         # 表格所需要的数据
    ('西城', 201991),
    ('海淀', 129508),
    ('东城', 130969),
    ('朝阳', 119170),
    ('丰台', 79933),
]

hdr_cells = table.rows[0].cells  # 获得表头所有的单元格
hdr_cells[0].text = '城区'        # 设置表头第1列单元格
hdr_cells[1].text = '单价（元）'   # 设置表头2列单元格

# 遍历列表records对象
for index, value in enumerate(records):

    addr_dist, price = value                    # 拆解元组中元素
    row_cells = table.rows[index + 1].cells     # 获得当前行所有单元格
    row_cells[0].text = addr_dist               # 设置表头第1列单元格
    row_cells[1].text = str(price)              # 设置当前行2列单元格

# 保存文件
ppt.save(f)

print('Game Over！')
